package com.gyg.service;

import com.gyg.domain.CloudUser;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gyg.returns.RespEntity;
import com.gyg.returns.RespTable;
import com.gyg.vo.MapVO;
import com.gyg.vo.param.LoginParam;
import com.gyg.vo.param.PageParam;
import com.gyg.vo.param.SearchUserParam;
import com.gyg.vo.result.SexResult;

import java.util.List;

/**
 * <p>
 * 用户信息表 服务类
 * </p>
 *
 * @author gyg
 * @since 2021-02-20
 */
public interface CloudUserService extends IService<CloudUser> {

    /**
     * 用户登陆
     * @param loginParam
     * @return
     */
    RespEntity<CloudUser> login(LoginParam loginParam);

    /**
     * 用户信息
     * @param userId
     * @return
     */
    RespEntity<CloudUser> userInfo(Integer userId);

    /**
     * 用户列表
     * @param page
     * @param limit
     * @param column
     * @param value
     * @return
     */
    RespTable<List<CloudUser>> cloudUserList(Integer page, Integer limit, String column, String value);

    /**
     * 封禁用户
     * @param userId
     * @return
     */
    RespEntity cloudUserBan(Integer userId);

    /**
     * 解封用户
     * @param userId
     * @return
     */
    RespEntity cloudUserDeBlock(Integer userId);

    /**
     * 黑名单用户
     * @param pageParam
     * @return
     */
    RespTable<List<CloudUser>> cloudUserBanList(PageParam pageParam);

    /**
     * 按照ids查询用户
     * @param ids
     * @return
     */
    RespEntity<List<CloudUser>> queryUserByIds(Integer[] ids);

    /**
     * 查询全部用户
     * @return
     */
    RespEntity<List<CloudUser>> queryAllUser();

    /**
     * 性别统计
     * @return
     */
    RespEntity<SexResult> querySexCount();

    /**
     * 中国地图
     * @param beginDate
     * @param endDate
     * @return
     */
    RespEntity<List<MapVO>> chinaMap(String beginDate, String endDate);

    /**
     * 省份地图
     * @param province
     * @param beginDate
     * @param endDate
     * @return
     */
    RespEntity<List<MapVO>> provinceMap(String province, String beginDate, String endDate);

}
